﻿using System;
namespace Producers.Kis.Xtee.Riik.Ee.Producer.Kis {
    
    
    public partial class ClaimBaseClaimData : global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.IClaimBaseClaimData {
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__objectNumber;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType @__type;
        
        private System.DateTime? @__beginningDate;
        
        private System.DateTime? @__endDate;
        
        private System.DateTime? @__objectDate;
        
        private int @__claimBaseID;
        
        private bool @__isProof;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @__liikDescription;
        
        private global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourClaimData @__liik;
        
        public ClaimBaseClaimData() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public ClaimBaseClaimData(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @objectNumber, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType @type, System.DateTime? @beginningDate, System.DateTime? @endDate, System.DateTime? @objectDate, int @claimBaseID, bool @isProof, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString @liikDescription, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourClaimData @liik) {
            this.@__objectNumber = @objectNumber;
            this.@__type = @type;
            this.@__beginningDate = @beginningDate;
            this.@__endDate = @endDate;
            this.@__objectDate = @objectDate;
            this.@__claimBaseID = @claimBaseID;
            this.@__isProof = @isProof;
            this.@__liikDescription = @liikDescription;
            this.@__liik = @liik;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public ClaimBaseClaimData(global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType @type, int @claimBaseID, bool @isProof, global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourClaimData @liik) {
            this.@__type = @type;
            this.@__claimBaseID = @claimBaseID;
            this.@__isProof = @isProof;
            this.@__liik = @liik;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected ClaimBaseClaimData(IClaimBaseClaimData @claimBaseClaimData) {
            this.@__objectNumber = @claimBaseClaimData.ObjectNumber;
            this.@__type = @claimBaseClaimData.Type;
            this.@__beginningDate = @claimBaseClaimData.BeginningDate;
            this.@__endDate = @claimBaseClaimData.EndDate;
            this.@__objectDate = @claimBaseClaimData.ObjectDate;
            this.@__claimBaseID = @claimBaseClaimData.ClaimBaseID;
            this.@__isProof = @claimBaseClaimData.IsProof;
            this.@__liikDescription = @claimBaseClaimData.LiikDescription;
            this.@__liik = @claimBaseClaimData.Liik;
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString ObjectNumber {
            get {
                return this.@__objectNumber;
            }
            set {
                this.@__objectNumber = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseType Type {
            get {
                return this.@__type;
            }
            set {
                this.@__type = value;
            }
        }
        
        public virtual System.DateTime? BeginningDate {
            get {
                return this.@__beginningDate;
            }
            set {
                this.@__beginningDate = value;
            }
        }
        
        public virtual System.DateTime? EndDate {
            get {
                return this.@__endDate;
            }
            set {
                this.@__endDate = value;
            }
        }
        
        public virtual System.DateTime? ObjectDate {
            get {
                return this.@__objectDate;
            }
            set {
                this.@__objectDate = value;
            }
        }
        
        public virtual int ClaimBaseID {
            get {
                return this.@__claimBaseID;
            }
            set {
                this.@__claimBaseID = value;
            }
        }
        
        public virtual bool IsProof {
            get {
                return this.@__isProof;
            }
            set {
                this.@__isProof = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.NonEmptyString LiikDescription {
            get {
                return this.@__liikDescription;
            }
            set {
                this.@__liikDescription = value;
            }
        }
        
        public virtual global::Producers.Kis.Xtee.Riik.Ee.Producer.Kis.ClaimBaseFavourClaimData Liik {
            get {
                return this.@__liik;
            }
            set {
                this.@__liik = value;
            }
        }
    }
}
